perm filename CNVERT.FAI[DAT,BGB]3 blob sn#101493 filedate 1974-05-10 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00005 PAGES 
RECORD PAGE   DESCRIPTION
 00001 00001
 00002 00002	TITLE CNVERT - CONVERT TV FORMAT OLDE TO NEW - BGB - 16 APR 73.
 00005 00003		FLGBGB:-1
 00007 00004	TVDSKI. TVDSKO.
 00009 00005	PDL:	BLOCK 100
 00010 ENDMK
⊗;
TITLE CNVERT - CONVERT TV FORMAT OLDE TO NEW - BGB - 16 APR 73.
;ALTERNATE PDP-10 MNEMONICS.

	DEFINE O(A,B){OPDEF A[B]}
	O LIP,HLR↔O LAP,HRR↔O DIP,HRLM↔O DAP,HRRM
	O ZIP,HRRZS↔O ZAP,HLLZS↔O WIP,HRROS↔O WAP,HRRZS
	O CAR,HLRZ↔O LIPI,HRLI↔O LAPI,HRRI↔O DIPZ,HRLZM
	O CDR,HRRZ↔O LACI,MOVEI↔O SLACI,MOVSI↔O DAPZ,HRRZM
	O LAC,MOVE↔O LACN,MOVN↔O LACM,MOVM↔O SLAC,MOVS
	O DAC,MOVEM↔O DACN,MOVNM↔O DACM,MOVMM↔O SDAC,MOVSM
	O NIP,HLRE↔O NAP,HRRE↔O NIM,HRREI↔O GO,JRST
	O FLOAT,FSC 233↔O FLO,FSC 225↔O FIXX,FIX 233000
	O DZM,SETZM↔O DOM,SETOM

;SAIL LIKE SUBROUTINE LINKAGE.

	↓P←←17
	DEFINE SUBR(NAME){INTERN NAME↔↓NAME: ;}
	DEFINE CALL(NAME,X1,X2,X3,X4){
	IFDIF <> <X1> {PUSH 17,X1↔IFDIF <> <X2> {PUSH 17,X2
	IFDIF <> <X3> {PUSH 17,X3↔IFDIF <> <X4> {PUSH 17,X4}}}}
	PUSHJ 17,NAME}
	DEFINE ARG1<-1(17)>↔DEFINE ARG2<-2(17)>
	DEFINE ARG3<-3(17)>↔DEFINE ARG4<-4(17)>
	DEFINE SETQ(VAR,LIST){CALL(LIST)↔DAC 1,VAR}

;RETURN FROM AN N-ARGUMENT SUBROUTINE CALL.

	DEFINE POP0J <POPJ 17,>
	↓POP1J.:SUB 17,[XWD 2,2]↔GO@2(17)↔DEFINE POP1J<GO POP1J.>
	↓POP2J.:SUB 17,[XWD 3,3]↔GO@3(17)↔DEFINE POP2J<GO POP2J.>
	↓POP3J.:SUB 17,[XWD 4,4]↔GO@4(17)↔DEFINE POP3J<GO POP3J.>
	↓POP4J.:SUB 17,[XWD 5,5]↔GO@5(17)↔DEFINE POP4J<GO POP4J.>

;ACCUMULATOR AND TEMPORARY DATA MANAGEMENT.

	FOR @$ I←0,17{↓AC$I:0↔}
	DEFINE SAVAC $(N){LAC[XWD 2,AC2]↔BLT AC$N}
	DEFINE GETAC (N){LAC[XWD AC2,2]↔BLT N}
	DEFINE ACCUMULATORS(LIST){ACPTR←←2
	FOR AC⊂(LIST)<AC←ACPTR↔ACPTR←←ACPTR+1↔>}
	DEFINE DECLARE (LIST){
	FOR VARNAM⊂(LIST)<VARNAM: 0↔>}

;FATAL ERROR MESSAGE.

	DEFINE FATAL(STR){PUSHJ 17,FATAL.↔ASCIZ/STR/}
	FATAL.:OUTSTR[BYTE(7)15,12,106,101,124↔"AL - "⊗1↔0]
	OUTSTR @(17)↔INCHRW↔GO .-1↔LIT
	DEFINE CRLF{OUTSTR[BYTE(7)15,12]}
	FLGBGB:-1

SUBR(GETFIL)------------------------------------------------------
BEGIN GETFIL;SETUP FILE SPEC FROM TTY LINE - BGB - 10 DEC 72.
	DZM FILNAM↔DZM EXTION↔DZM EXTION+1↔DZM PPPN
	OUTSTR[ASCIZ/	FILE = /]
	LAC 1,[POINT 6,FILNAM,-1]↔LACI 2,6
	INCHWL↔CAIN 15↔GO[INCHWL↔POP2J]↔AOSA(P)
L:	INCHWL↔CAIL"a"↔SUBI 40
	CAIN"."↔GO[LAC 1,[POINT 6,EXTION,-1]↔LACI 2,3↔GO L]
	CAIN"["↔GO[LAC 1,[POINT 6,PPPN,-1]  ↔LACI 2,3↔GO L]
	CAIN","↔GO[LAC 1,[POINT 6,PPPN,17]  ↔LACI 2,3↔GO L]
	CAIN"]"↔GO L
	CAIN 15↔GO EOL			;END OF THE LINE.
	CAIN 12↔GO EOL
	CAIG" "↔GO L	;IGNORE GARBAGE.
	SOJL 2,L↔SUBI 40↔IDPB 1↔GO L

EOL:	INCHWL
	SKIPN 1,EXTION↔LAC 1,ARG2↔DAC 1,EXTION
	SKIPN FLGBGB↔POP2J
;BGB'S DEFAULT PROJECT SPECIFICATION.
	SKIPN 1,PPPN↔  LAC 1,ARG1↔DAC 1,PPPN
	POP2J
BEND;12/10/72------------------------------------------------------

FILNAM:	0	;FILE NAME.
EXTION:	0	;EXTENSION.
	0
PPPN:	0	;PROJECT-PROGRAMMER.
;TVDSKI. TVDSKO.
SUBR(TVDSKI)------------------------------------------------------
BEGIN TVDSKI;INPUT TV PICTURE FROM A DISK FILE - BGB 6 DEC 72.
	INIT 1,17↔SIXBIT/DSK/↔0↔HALT
L1:	CALL(GETFIL,[SIXBIT/TMP/],[SIXBIT/DATBGB/])
	GO[RELEASE 1,↔POP0J]
	LOOKUP 1,FILNAM↔GO L1
	IN 1,DUMARG↔JFCL
	OUTSTR[ASCIZ"	EOF.
"]↔	RELEASE 1,↔POP0J
DUMARG:	IOWD 24400,HEADER↔0
BEND;12/14/72-----------------------------------------------------

SUBR(TVDSKO)------------------------------------------------------
BEGIN TVDSKO;INPUT TV PICTURE FROM A DISK FILE - BGB 6 DEC 72.
	CALL(GETFIL,[SIXBIT/TMP/],[SIXBIT/DATBGB/])↔POP0J
	INIT 1,17↔SIXBIT/DSK/↔0↔HALT
	ENTER 1,FILNAM↔GO[OUTSTR[ASCIZ/	ENTER FAILED.
/]↔GO .+4]
	OUT 1,DUMARG↔JFCL
	OUTSTR[ASCIZ"	EOF.
"]↔	RELEASE 1,↔POP0J
DUMARG:	IOWD 24400,HEAD1↔0
BEND;12/14/72-----------------------------------------------------
PDL:	BLOCK 100
SA:	LAC P,[IOWD -100,PDL]
	OUTSTR[ASCIZ/ INPUT /]
	CALL(TVDSKI)
	LAC[XWD HEADER,HEADER+1]
	DZM HEADER
	BLT HEADER+9
	OUTSTR[ASCIZ/ OUTPUT /]
	CALL(TVDSKO)
	GO SA


HEAD1:	-1
	6	; BITS PER BYTE.
	=48	;WORDS PER LINE.
	=20	;FIRST AND LAST ROW.
	=235
	=28
	=315	;FIRST AND LAST COL.
	XWD -=10368,200

	BLOCK =110	;KARL PINGLE MEMORIAL HOLE.

HEADER:	BLOCK =10
	BLOCK 24400
EOB:	-1

END SA